#pragma once
#include "../Gui.h"
#include "UtilInclude.h"
#include "../Control/ControlInclude.h"

#define FONT_DECLARE   \
	CFontTab *pFontTab = CFontTab::GetInstance();\
	if(!pFontTab)\
				{\
				}\

#define FNT_GETFONT(x)		pFontTab->GetFont(x)

/** 
*@brief Uses a map to hold all the fonts \n
*You can get the font from the tab by passing the corresponding string key
*/

class GUI_API CFontTab
{
public:
	virtual ~CFontTab(void);

public:

	/**
	*@brief Get the single font table instance
	*@return The font table instance pointer
	*/
	static CFontTab* GetInstance();

	/**
	*@brief Get the font by the font key
	*@return The font pointer
	*/
	CFont* GetFont(wstring strFont);

protected:
	BOOL  InitFontMap();

private:
	static CFontTab * g_pInstance;
	map<wstring,CFont*> m_mapItems;

protected:
	CFontTab(void);
};

#define  SH_Title L"SH_Title"
#define  Icon_Cap L"Icon_Cap"